package 基础;
//静态内部类
class OuterClass2{
    int a =1;
    static int hh = 12;
    static class InnerClass2{
        int h= 1;
        void fun1(){
            System.out.println(h);
            System.out.println(hh);//可以直接访问外面类的静态成员
//  1.          System.out.println(a);//报错 不依赖外部类 不可以直接访问外面类的实例成员
//  2.
            OuterClass2 outerClass2 = new OuterClass2();
            System.out.println(outerClass2.a);
        }
    }
    void fun1(){
//        System.out.println(InnerClass2.h);//报错
        InnerClass2 innerClass2 =new InnerClass2();
        System.out.println(innerClass2.h);
    }
}
public class InnerClass_3 {
    public static void main(String[] args) {
//        实例化对象
        OuterClass2.InnerClass2 innerClass2 =new OuterClass2.InnerClass2();
        innerClass2.fun1();//内部类方法
        System.out.println("=================");
//      访问方法
        OuterClass2 outerClass2 =new OuterClass2();
        outerClass2.fun1();


    }
}
//总结
//静态内部类可以直接访问外部类的静态成员，但不能直接访问外部类的实例成员。如果需要访问外部类的实例成员，需要创建外部类的对象。
//外部类访问静态内部类的实例成员时，需要创建静态内部类的对象。
